Behavior Trees

  • I found it very similar to the State Machine, just with some larger controllers (selectors), etc.

  • Apparently allows greater scalability than State Machine, but it sounded very similar.

  • The 'Blackboard' (variables and world state) is read by the Tree and also written by the Tree when executing something.

  • It is quite deterministic and not emergent.

Games that use it

  • Halo 2 up to Halo Infinite (2004 to 2021).

  • Destiny 2 (supposedly).

  • Gears of War.

  • Alien: Isolation .

    • Has an 'AI Director' and an 'Alien AI'. The first stores player information.

  • Hitman (2016 and 2018) .

    • .

    • The video is not very useful, I found it so-so.

  • The Division 2 .

    • The video is a bit poor because it's sponsored.

  • Far Cry 3.

  • Far Cry Primal.

  • Bioshock Infinite.

Explanations and Examples

  • Explanations .

    • "Blackboard":

      • Stores world information for the entire Tree.

    • .

    • .

  • GDC on 'modular AI' with Behavior Trees .

  • AI in Godot using the BeeHave addon .

    • {1:14 -> 14:40}

      • Explanation of what a Behavior Tree is.

    • {8:15 -> 12:12}

      • Demonstration of the Behavior Tree in action.

    • {17:10}

      • Shows debugger visualization of BeeHave nodes, which is pretty neat.

  • OOP tips for modular use of 'Behavior Trees' and 'Hybrid between Behavior Tree and Utility AI' .

    • There are 3 presentations. All focus on OOP, organization, guidelines, etc.

    • The first presentation talks about Behavior Trees.

      • Kind of so-so, a bit too introductory.

    • The second presentation talks about Utility AI, but used in a hybrid way; it did not captivate me at first glance.

      • Interesting to encourage the use of Utility AI, but other presentations focused on this are better.

    • The third presentation talks about Behavior Trees.

      • This part I found most interesting, for introducing the concept:

        • Separate the parts of "Sense", "Plan" and "Act".

      • Has good guidelines, very useful.

      • .

      • .

      • .

    • It is a very useful video for OOP. Not as useful to me overall, since I already knew many of these things, but it is a good video.